Oracle RAC 11G ACFS 集群文件系统配置

1 背景知识

本文主要介绍如何在 Oracle 11G 环境下添加ACFS 集群文件系统

2. 问题需求

在DSG 虚拟机服务器上一套centos 6.4 64位系统上oracle 11.2.0.4 rac测试环境,发现acfs和advm无法使用,ASMCA图形界面的acfs和volume选项卡为灰色!这是由于acfs不支持centos系统导致的,下面就介绍下如何在配置centos上使用acfs集群文件系统!

3. 问题描述

\[grid@raca ~\]$ sqlplus / as sysasm

SQL*Plus: Release 11.2.0.4.0 Production on Mon Nov 9 15:49:08 2015

Copyright (c) 1982, 2013, Oracle. All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Real Application Clusters and Automatic Storage Management options

SQL>  

SQL> alter diskgroup data set attribute 'COMPATIBLE.ASM'='11.2';

Diskgroup altered.

SQL> alter diskgroup data add volume acfsvol size 1G;

alter diskgroup data add volume acfsvol size 1G

*

ERROR at line 1:

ORA-15032: not all alterations performed

ORA-15477: cannot communicate with the volume driver

启动acfs 功能发现ORACLE 并不支持CENTOS上acfs功能

\[root@raca ~\]# /u01/gapp/grid/11g/bin/acfsload start -s

ACFS-9459: ADVM/ACFS is not supported on this OS version: 'centos-release-6.4'

4. 修改osds_acfslib.pm脚本代码

5. rac2节点做同样的修改

| cd /u01/gapp/grid/11g/lib/cp -p osds_acfslib.pm osds_acfslib.pm.bak vi osds_acfslib.pm |

 if ((defined($release)) && \# Redhat or OEL if defined

 (($release =~ /^redhat-release/) || \# straight RH

 ($release =~ /^enterprise-release/) || \# Oracle Enterprise Linux

 ($release =~ /^oraclelinux-release/))) \# Oracle Linux

 {

将上面的代码片段修改如下:

 if ((defined($release)) &&                    \# Redhat or OEL if defined

 (($release =~ /^redhat-release/) || \# straight RH

 ($release =~ /^enterprise-release/) || \# Oracle Enterprise Linux

 ($release =~ /^centos-release/) || \# CentOS hack

   ($release =~ /^oraclelinux-release/))) \# Oracle Linux

 {

6. 安装acfs,配置acfs和advm模块启动自动加载,rac2节点做同样的配置

/u01/app/11.2.0/grid/bin/acfsload start -s

ACFS-9129: ADVM/ACFS not installed

1 1.1 安装acsfs和advm 模块

注意:lsb_relase 命令如果没有的话 就使用yum install lsb 安装上。没有这个命令会报错。

\[root@racb bin\]# ./acfsload start -s

ACFS-9129: ADVM/ACFS not installed

\[root@racb bin\]# acfsroot install

ACFS-9300: ADVM/ACFS distribution files found.

ACFS-9307: Installing requested ADVM/ACFS software.

ACFS-9308: Loading installed ADVM/ACFS drivers.

ACFS-9321: Creating udev for ADVM/ACFS.

ACFS-9323: Creating module dependencies - this may take some time.

ACFS-9154: Loading 'oracleoks.ko' driver.

ACFS-9154: Loading 'oracleadvm.ko' driver.

ACFS-9154: Loading 'oracleacfs.ko' driver.

ACFS-9327: Verifying ADVM/ACFS devices.

ACFS-9156: Detecting control device '/dev/asm/.asm\_ctl\_spec'.

ACFS-9156: Detecting control device '/dev/ofsctl'.

ACFS-9309: ADVM/ACFS installation correctness verified.

2 1.2 启动ACFS

\[root@racb bin\]# acfsload start     

ACFS-9391: Checking for existing ADVM/ACFS installation.

ACFS-9392: Validating ADVM/ACFS installation files for operating system.

ACFS-9393: Verifying ASM Administrator setup.

ACFS-9308: Loading installed ADVM/ACFS drivers.

ACFS-9327: Verifying ADVM/ACFS devices.

ACFS-9156: Detecting control device '/dev/asm/.asm\_ctl\_spec'.

ACFS-9156: Detecting control device '/dev/ofsctl'.

ACFS-9322: completed

3 1.3 检查安装是否成功

\[root@racb bin\]# lsmod | grep oracle

oracleacfs 1990406 0

oracleadvm 250040 0

oracleoks 427672 2 oracleacfs,oracleadvm

4 1.4 自启动脚本

\[root@racb init.d\]# cat /etc/init.d/acfsload

#!/bin/sh

#chkconfig: 2345 30 21

\# description : Load Oracle ASM volume driver on system startup

ORACLE_HOME=/u01/gapp/grid/11g/

export ORACLE_HOME

$ORACLE_HOME/bin/acfsload start -s

5 1.5 增加启动脚本到chkconfig 里

\[root@racb init.d\]# chmod 755 /etc/init.d/acfsload

\[root@racb init.d\]# chkconfig --add acfsload

\[root@racb init.d\]# chkconfig | grep acfsload

acfsload 0:off 1:off 2:on 3:on 4:on 5:on 6:off

7. 添加ora.registry.acfs到ocr配置中

1 5.1 注册服务模板文件

\[root@raca ~\]# /u01/gapp/grid/11g/bin/crsctl add type ora.registry.acfs.type \

\> -basetype ora.local_resource.type \

\> -file /u01/gapp/grid/11g/crs/template/registry.acfs.type

2 5.2 注册服务类型

\[root@raca init.d\]# /u01/gapp/grid/11g/bin/crsctl add resource ora.registry.acfs \

\> -attr ACL=\\'owner:root:rwx,pgrp:oinstall:r-x,other::r--\\' \

\> -type ora.registry.acfs.type -f

3 5.3 检查是否注册成功

su - grid -c crs_stat | grep acfs

NAME=ora.registry.acfs

TYPE=ora.registry.acfs.type

4 5.4 确认注册

 \[root@rac1 ~\]# /sbin/acfsutil registry

8. 创建卷并格式化成acfs集群文件系统并挂载

1 6.1 创建新的磁盘组

alter diskgroup data add volume acfsvol size 1G;

Diskgroup altered.

创建磁盘组例子:

```sql
SQL> CREATE DISKGROUP dg4 external redundancy DISK 'ORCL:FDISK_DEV_SDF3' ATTRIBUTE 'compatible.asm' = '11.2',

'compatible.rdbms' = '11.2','compatible.advm'='11.2';

Diskgroup created.


## 8.2. 6.1 创建共享的磁盘目录(两个节点都执行)

```bash
\[root@raca init.d\]# mkdir /sharedisk

\[root@racb init.d\]# mkdir /sharedisk

2 6.2 创建卷并格式化

创建asm卷例子:

SQL> alter diskgroup dg4 add volume acfsvol size 200M;

Diskgroup altered.

\[root@b1 asm\]# ls /dev/asm  
acfsvol-303

格式化:

\[root@raca init.d\]# mkfs -t acfs -n SOFT /dev/asm/soft-207 

mkfs.acfs: version = 11.2.0.4.0

mkfs.acfs: on-disk version = 39.0

mkfs.acfs: volume = /dev/asm/soft-207

mkfs.acfs: volume size = 21474836480

mkfs.acfs: Format complete.

3 6.3 注册ACFS到ocr配置中

\[root@raca init.d\]# acfsutil registry -a -f /dev/asm/soft-207 /sharedisk/

acfsutil registry: mount point /sharedisk successfully added to Oracle Registry

4 6.4 挂载ACFS集群文件系统

\[root@raca init.d\]# mount.acfs -o all

5 6.5 检查挂载是否成功

\[root@raca init.d\]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/sda3      46G 19G 25G 43% /

tmpfs 1.9G 567M 1.4G 30% /dev/shm

/dev/sda1 2.0G 83M 1.8G 5% /boot

/dev/sr0 4.1G 4.1G 0 100% /mnt/cd

/dev/sdc1 30G 1.7G 27G 6% /dsg

/dev/asm/soft-207 20G 117M 20G 1% /sharedisk

\[root@racb init.d\]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/sda3 46G 19G 25G 43% /

tmpfs 1.9G 567M 1.4G 30% /dev/shm

/dev/sda1 2.0G 83M 1.8G 5% /boot

/dev/sr0 4.1G 4.1G 0 100% /mnt/cd

/dev/sdc1 30G 1.7G 27G 6% /dsg

/dev/asm/soft-207 20G 117M 20G 1% /sharedisk

6 6.6 ACFS 属性检查

\[root@racb init.d\]# acfsutil info fs

/sharedisk

 ACFS Version: 11.2.0.4.0

  flags: MountPoint,Available

 mount time: Mon Nov 9 15:44:21 2015

 volumes: 1

 total size: 21474836480

 total free: 21352267776

 primary volume: /dev/asm/soft-207

 label: SOFT

 flags:           Primary,Available,ADVM

 on-disk version: 39.0

 allocation unit: 4096

 major, minor: 252, 105985

 size: 21474836480

 free: 21352267776

 ADVM diskgroup SOFT

 ADVM resize increment: 33554432

 ADVM redundancy: unprotected

 ADVM stripe columns: 4

 ADVM stripe width: 131072

 number of snapshots: 0

 snapshot space usage: 0

 replication status: DISABLED